﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class UserControl_ControlCapBac : System.Web.UI.UserControl
{
    ClassExecute.ClassExecute dt;
    string str = webapp4U.Configuration.CurrentConnectionString;
    string error = "";
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (ViewState["flag"] == null)
            {
                //ViewState["flag"] = false;
                ClearAdd();
            }
        }
    }
    void ClearAdd()
    {
        TabContainer1.ActiveTabIndex = 0;
        clearDetail();
        ViewState["flag"] = true;

        txtName.Focus();

        btnSave.Text = "Lưu";
        lblMsg.Text = "";
        lblMsg.Visible = false;
    }
    private void clearDetail()
    {
        txtName.Text = "";
        txtMaSo.Text = "New";
        txtIndex.Text = "";
    }

    protected void imgBtnAdd_Click(object sender, ImageClickEventArgs e)
    {
        ClearAdd();

    }
   
    protected void grvCapbac_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        dt = new ClassExecute.ClassExecute();
        try
        {
            if (e.CommandName == "chon")
            {

                GridViewRow grv = ((Control)e.CommandSource).NamingContainer as GridViewRow;
                Label lblMaSo = (Label)grv.FindControl("lblMaSo");
                Label lblMoTa = (Label)grv.FindControl("lblMoTa");
                Label lblRate = (Label)grv.FindControl("lblRate");
                CheckBox chk = (CheckBox)grv.FindControl("checkActive");

                txtMaSo.Text = lblMaSo.Text;
                txtName.Text = lblMoTa.Text;
                txtIndex.Text = lblRate.Text;
                chkActive.Checked = chk.Checked;

                ViewState["flag"] = false;
                btnSave.Text = "Cập nhật";
                lblMsg.Visible = false;

                grvCapbac.DataSource = null;
                grvCapbac.DataBind();

                TabContainer1.ActiveTabIndex = 0;

            }
        }
        catch (Exception ex)
        {

            string method = System.Reflection.MethodBase.GetCurrentMethod().Name;
            dt.WriteErrorLog(Server.MapPath(webapp4U.Globals.LogUrl()), ex.Message, method);
        }    
    }
    protected void grvCapbac_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        grvCapbac.PageIndex = e.NewPageIndex;
        LoadGrid();
    }
    protected void btSearch_Click(object sender, EventArgs e)
    {
        LoadGrid();
    }
    void LoadGrid()
    {
        dt = new ClassExecute.ClassExecute();
        try
        {
            DataTable db = dt.Get_Data_DataTable(str, ref error, "k_searchHrsalelevel", CommandType.StoredProcedure,
                new SqlParameter("@para", txtSearch.Text));
            grvCapbac.DataSource = db;
            grvCapbac.DataBind();
            if (db.Rows.Count == 0)
            {
                //uscMsgBox1.AddMessage("Không tìm thấy kết quả", uscMsgBox.enmMessageType.Attention);
            }
        }
        catch (Exception ex)
        {

            string method = System.Reflection.MethodBase.GetCurrentMethod().Name;
            dt.WriteErrorLog(Server.MapPath(webapp4U.Globals.LogUrl()), ex.Message, method);
        }
    }

    protected void btnSave_Click(object sender, EventArgs e)
    {
        dt = new ClassExecute.ClassExecute();
        int i = 0;
        try
        {
            if ((bool)ViewState["flag"])
            {
                //insert
                i = dt.ExecuteSQl_int(str, "k_insertHrsalelevel", CommandType.StoredProcedure, ref error,
                    new SqlParameter("@Description", txtName.Text),
                    new SqlParameter("@Rate", int.Parse(txtIndex.Text)),
                    new SqlParameter("@Active",chkActive.Checked));
                if (i == 1)
                {
                    // uscMsgBox1.AddMessage("Thêm mới cấp bậc/danh hiệu thành công", uscMsgBox.enmMessageType.Success);
                    ClearAdd();
                    lblMsg.Text = "Thêm mới danh hiệu thành công";
                    lblMsg.Visible = true;
                }
                else if (i == 2)
                {
                    lblMsg.Text = "Tên danh hiệu này đã có trong hệ thống";
                    lblMsg.Visible = true;
                }
                else
                {
                    lblMsg.Text = "Hệ thống đang bảo trì";
                    lblMsg.Visible = true;
                }
              
            }
            else
            {
                //update
                i = dt.ExecuteSQl_int(str, "k_updateHrsalelevel", CommandType.StoredProcedure, ref error,
                   new SqlParameter("@Description", txtName.Text),
                   new SqlParameter("@Rate", int.Parse(txtIndex.Text)),
                   new SqlParameter("@LevelId", int.Parse(txtMaSo.Text)),
                   new SqlParameter("@Active",chkActive.Checked));
                if (i == 1)
                {
                   
                    lblMsg.Text = "Cập nhật danh hiệu thành công";
                    lblMsg.Visible = true;
                }
                else if (i == 2)
                {
                    lblMsg.Text = "Tên danh hiệu này đã có trong hệ thống";
                    lblMsg.Visible = true;
                }
                else
                {
                   
                    lblMsg.Text = "Hệ thống đang bảo trì";
                    lblMsg.Visible = true;
                }
            }
        }
        catch (Exception ex)
        {

            string method = System.Reflection.MethodBase.GetCurrentMethod().Name;
            dt.WriteErrorLog(Server.MapPath(webapp4U.Globals.LogUrl()), ex.Message, method);
        }    
    }

}